// pages/common/common.js    
const db = wx.cloud.database()
Page({

  /**
   * 页面的初始数据
   */
  data: {
    value: 0, //评分
    message: '', //评论
    movieid: 0, //这部电影的ID
    detail: [], //这部电影的详情
    images: [], //用户选择的图片
    fileIds: [],
    nowTime: '',
    actor: [], //主演
    director: [], //导演
    lists: [], //这部电影的所有评论
    usernickName: '',
    userAvatarUrl: ''
  },
  // 监听评论框
  onContentChange: function (event) {
    this.setData({
      message: event.detail
    })
  },
  // 提交评论
  takeit() {
    //如果一定要上传图片
    // if(this.data.images.length<1){
    //   wx.showToast({
    //     icon:"error",
    //     title: '选择你要上传的图片',
    //   })
    //   return
    // }
    // 功能：提交
    // 上传图片
    // 1在云数据库中创建集合comment 用户评论信息
    // 2data中添加属性fileID：[] 上传文件
    // 3显示数据加载提示框
    wx.showLoading({
      title: '评论中',
    })
    // 4创建数组rows 保存promise对象
    let rows = [];
    // 5创建循环遍历每一张图片
    for (let i = 0; i < this.data.images.length; i++) {
      // 6为每张创建promise对象完成上传
      rows.push(new Promise((resolve, reject) => {
        //用正则表达式来获取文件后缀
        let item = this.data.images[i];
        let suffix = /\.\w+$/.exec(item)[0]
        //创建文件名称
        let newFileName = new Date().getTime() + Math.floor(Math.random() * 9999) + suffix;
        //上传
        wx.cloud.uploadFile({
          cloudPath: newFileName,
          filePath: item,
          success: (res => {
            //上传成功将fid保存
            let fid = res.fileID;
            this.data.fileIds.push(fid)
            console.log(res)
            console.log(this.data.fileIds)
            //解析
            resolve()
          })
        })
      })) //push end
    } //for end
    // 将用户评论信息和图片的fileID保存在云数据库中
    // 1创建数据库实例对象
    Promise.all(rows).then(res => {
      // 2获取用户评论内容
      let date = new Date()
      // 3获取用户评分
      // 4当前电影ID
      // 5图片的fileId
      // 6添加进集合
      let value = this.data.value * 2
      db.collection('comment').add({
        data: {
          content: this.data.message,
          value: value,
          movieid: this.data.movieid,
          fileIds: this.data.fileIds,
          imagesNum: this.data.images.length,
          usernickName: this.data.usernickName,
          userAvatarUrl: this.data.userAvatarUrl,
          nowTime: date.getFullYear() + '/' + (date.getMonth() + 1) + '/' + date.getDate() + '/' + date.getHours() + '时'
        }
      }).then(res => {
        // 7隐藏加载提示
        wx.hideLoading({})
        // 8提示评论成功
        wx.showToast({
          title: '评论成功',
        })
      }).then(res => {
        return new Promise((resolve, reject) => {
          setTimeout(() => {
            wx.switchTab({
              url: '../home/home',
            })
            resolve()
          }, 1000)
        })
      }).catch(err => {

      })


    })

  },
  //评分星星
  onChange(event) {
    this.setData({
      value: event.detail,
    });
  },
  //获取电影信息
  loadDetails: function () {
    //显示加载提示
    wx.showLoading({
      title: '正在加载中',
    })
    //调用云函数
    wx.cloud.callFunction({
      name: 'findMovie',
      data: {
        id: this.data.movieid
      }
    }).then(res => {
      let detail = JSON.parse(res.result)
      let actor = []
      let director = []
      for (let i = 0; i < detail.actor.length; i++) {
        actor.push(detail.actor[i].data[0])
      }
      for (let j = 0; j < detail.director.length; j++) {
        director.push(detail.director[j].data[0])
      }
      this.setData({
        detail: detail,
        actor: actor,
        director: director
      })
      console.log(this.data.director)

      console.log(this.data.detail)
      //隐藏加载提示
      wx.hideLoading()
    }).catch(err => {
      console.log(err)
    })

  },
  //上传图片函数
  uploadFile: function () {
    //在data中保存预览图片
    wx.chooseImage({
      count: 9, //选中最多9站图片
      sizeType: ['original', 'compressed'], //图片类型
      sourceType: ['album', 'camera'], //图片来源
      success: (res => { //选中成功
        //获取选中图片的路径
        let list = res.tempFilePaths;
        console.log(list)
        this.setData({
          images: list
        })
      })
    })

    //保存data中属性
    //显示图片
  },
  seach: function () {
    db.collection('comment')
      .where({
        movieid: this.data.movieid
      })
      // 等等都行}) 指定查询时添加条件
      .get()
      .then(res => {
        this.setData({
          lists: res.data
        })
        console.log(res.data)


      })
      .catch(err => {
        console.log(err)
      })
  },
  /**
   * 生命周期函数--监听页面加载
   */
  getUser: function (event) {
    this.setData({
      usernickName: event.detail.userInfo.nickName,
      userAvatarUrl: event.detail.userInfo.avatarUrl
    })
    this.takeit()
  },
  onLoad: function (options) {
    this.setData({
        movieid: options.id
      }),
      console.log(options.id)
    this.loadDetails()
    this.seach()
    console.log(this.data.lists)
  },
  //错误提示
  wrong: function () {
    wx.showToast({
      icon:"error",
      title: '接口数据异常',
    })
  },
  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})